package com.ym.b2b.order;

import java.sql.SQLException;
import java.util.List;

import com.ym.b2b.commons.exception.BaseException;
import com.ym.b2b.order.sqlbean.EmSOrderConfirmItem;
import com.ym.b2b.order.vo.OrderInfoVO;
import com.zc.commons.base.Result;

/**
 * @ClassName: TradeRequest
 * @Description: ERP 接口定义
 * @Author 竺夏军
 * @Date 2014年12月24日 上午12:07:49
 * @Modify
 * @CopyRight
 */
public abstract interface TradeRequest {

    /**
     * 下单接口, 必须
     */
    Result bookingErpOrder(OrderInfoVO vo, List<EmSOrderConfirmItem> list) throws BaseException;

    /**
     * 取消订单接口,必须
     */
    Result cancelOrder(OrderInfoVO vo) throws BaseException, SQLException;

    /**
     * 支付接口 通知ERP系统 支付成功
     */
    Result payErpOrder() throws BaseException;

    /**
     * 完成订单接口
     */
    Result completeErpOrder() throws BaseException;

    /**
     * 退货接口
     */
    Result saleReturnErpOrder() throws BaseException;

    /**
     * 更新订单状态,必须
     */
    void updateOrder(OrderInfoVO vo, List<EmSOrderConfirmItem> list) throws BaseException;

}
